
package vip.xiaonuo.biz.modular.lancerCoupon.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.transaction.annotation.Transactional;
import vip.xiaonuo.biz.modular.lancerCoupon.entity.BizCoupon;
import vip.xiaonuo.biz.modular.lancerCoupon.param.BizCouponAddParam;
import vip.xiaonuo.biz.modular.lancerCoupon.param.BizCouponEditParam;
import vip.xiaonuo.biz.modular.lancerCoupon.param.BizCouponIdParam;
import vip.xiaonuo.biz.modular.lancerCoupon.param.BizCouponPageParam;

import java.util.List;

/**
 * 优惠券表Service接口
 *
 * @author Lancer
 * @date  2024/03/03 16:29
 **/
public interface BizCouponService extends IService<BizCoupon> {

    /**
     * 获取优惠券表分页
     *
     * @author Lancer
     * @date  2024/03/03 16:29
     */
    Page<BizCoupon> page(BizCouponPageParam bizCouponPageParam);

    /**
     * 添加优惠券表
     *
     * @author Lancer
     * @date  2024/03/03 16:29
     */
    void add(BizCouponAddParam bizCouponAddParam);

    /**
     * 编辑优惠券表
     *
     * @author Lancer
     * @date  2024/03/03 16:29
     */
    void edit(BizCouponEditParam bizCouponEditParam);

    @Transactional(rollbackFor = Exception.class)
    void editBus(BizCouponEditParam bizCouponEditParam);

    /**
     * 删除优惠券表
     *
     * @author Lancer
     * @date  2024/03/03 16:29
     */
    void delete(List<BizCouponIdParam> bizCouponIdParamList);

    /**
     * 获取优惠券表详情
     *
     * @author Lancer
     * @date  2024/03/03 16:29
     */
    BizCoupon detail(BizCouponIdParam bizCouponIdParam);

    /**
     * 获取优惠券表详情
     *
     * @author Lancer
     * @date  2024/03/03 16:29
     **/
    BizCoupon queryEntity(String id);

    Page<BizCoupon> pageClient(BizCouponPageParam bizCouponPageParam);

    void grab(String id);

    void redCouponNumber(String id, Integer currNumber);

    List<BizCoupon> getCouponListByGoodsBoxId(String goodsBoxId);

    Page<BizCoupon> pageBus(BizCouponPageParam bizCouponPageParam);

}
